Computing systems have come a long way in terms of usage. From being confined to research and development units of universities and large corporations, computers have become mass market products, like televisions, radios, etc. Also, gone are the days when a user had to learn a programming language as an interface to a computing machine. With the arrival of rich and interactive user interfaces, a user has a multitude of new age options (touch, gesture, etc.) available these days on how he or she chooses to interact with a computer system. Further, the size of a system itself has undergone a sea change in terms of portability. With handheld computers increasingly becoming affordable, the manufacturers are rushing to come out with better and more attractive devices. All this has led to a huge demand for novel and useful computer applications or products.
Hundreds of new computer applications are getting released each year by individual contributors, small and medium enterprises, and large software vendors. These applications range from a simple calculator for an average user to a large identity management software for a network or database administrator. Some of them are available free of cost for downloading from the internet, the others could cost hundreds of dollars. Also, these applications may be built upon an open source platform or a proprietary technology.
With increase in diversity of computer applications and hardware combinations on offer, most large software vendors try to develop and release more than one flavor of their products. For example, a software vendor may have to release different versions of an application for it to run on a variety of computer platforms, including different kinds of operating systems, such as a Mac operating system, Linux operating system, a Windows operating system, etc. In such scenario, testing the compatibility of a computer application with a computer platform is an aspect that is considered prior to release of the computer application to avoid any issues later on.